﻿using FluentNHibernate.Mapping;
using SOLInfo.GEN.Domain.Entities;
using SOLInfo.GEN.Domain.VO;

namespace SOLInfo.GEN.Repository.Mappings
{
    public class EmpresaMapping: ClassMap<Empresa>
    {
        public EmpresaMapping()
        {
            Id(x=> x.Codigo);
            Map(x=> x.Descricao);
            Map(x=> x.Email);
            Map(x=> x.Fax);
            Map(x=> x.Nome);
            Map(x=> x.ProdutosServicos);
            Map(x=> x.Publicar);
            Map(x=> x.Site);
            Map(x => x.Telefone);
            HasOne<Endereco>(x => x.oEndereco);
            HasMany<Categoria>(x => x.Categorias);
            HasManyToMany<Contato>(x=> x.Contatos)
                .Cascade.SaveUpdate()
                .Table("Empresa_Contato");

            Component<Manutencao>(x => x.Criacao, MappingBase.MapManutencao("Criacao"));
            Component<Manutencao>(x => x.UltimaAlteracao, MappingBase.MapManutencao("Alteracao"));
        }
    }
}
